#pragma once

#include "Ogre.h"
#include "MyGUI.h"
#include "MyGUI_OgrePlatform.h"

class GUIManager
{
protected:
	GUIManager();
	~GUIManager();
	
	Ogre::RenderWindow *mWindow;
	Ogre::SceneManager *mSceneMgr;

	MyGUI::OgrePlatform *mPlatform;
	MyGUI::Gui *mGUI;

public:
	/**
	singleton access
	@return The single instance of this class
	*/
	static GUIManager &Instance()
	{
		static GUIManager instance;
		return instance;
	}

	bool Startup(Ogre::RenderWindow *window, Ogre::SceneManager *sceneMgr);
	void Shutdown();

	void MouseEvent(const OIS::MouseEvent &arg, OIS::MouseButtonID id, unsigned int Pressed);
	void KeyboardEvent(OIS::KeyCode key, unsigned int text, bool Pressed);

	MyGUI::Gui *GetGUI() const
	{
		return mGUI;
	}
};